#!/usr/bin/env bash
set -e # 这告诉bash一但有任何一个语句返回非真的值，则退出bash。

PROG_NAME=`basename $0`
PROG_DIR=`dirname $0`
PROG_DIR=`cd "$PROG_DIR" && pwd`

. "$PROG_DIR/vic/log.sh"

function print_help {
    echo -e "Usage: $PROG_NAME [options] inum"
    echo -e ""
    echo -e "Options:"
    echo -e "  -h, --help"
    echo -e "    Displays help message."
    echo -e ""
}

function append_file_inum {
    for ARG in "$@"
    do
        if [[ -n $FIND_INUM ]] ; then
            FIND_INUM="$FIND_INUM -o -inum \"$ARG\""
        else
            FIND_INUM="-inum \"$ARG\""
        fi
    done
}

#-o表示短选项，两个冒号表示该选项有一个可选参数，可选参数必须紧贴选项
#如-carg 而不能是-c arg
#--long表示长选项
#"$@"在上面解释过
# -n:出错时的信息
# -- ：举一个例子比较好理解：
#我们要创建一个名字为 "-f"的目录你会怎么办？
# mkdir -f #不成功，因为-f会被mkdir当作选项来解析，这时就可以使用
# mkdir -- -f 这样-f就不会被作为选项。
CMD_GETOPT=`getopt -o h --long help -n 'example.bash' -- "$@"`
eval set -- "$CMD_GETOPT"
while true ; do
    case "$1" in
        -h|--help) print_help; exit 1 ;;
        --) shift; break ;;
        *) echo "Unknown option: $1"; print_help; exit 1 ;;
    esac
done
for arg do
    append_file_inum $arg ;
done

if [[ -z $FIND_INUM ]] ; then
    print_help
    exit 1
fi

EXP="find ./ \( $FIND_INUM \) -exec rm -i {} \;"
vic_log_debug "EXP: $EXP"
eval $EXP

